package com.platform.servicebase.exceptionHander;

import com.platform.common_utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author CZF
 * @create 2022-02-28 20:10
 *
 * 当服务器报错的时候执行，让前端知道是后端服务器报错
 */
@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {

    //指定出现什么异常时执行这个方法，
    @ExceptionHandler(Exception.class)
    @ResponseBody //后端报错也可以返回数据，通知前端
    public R error(Exception e){
        e.printStackTrace();
        return R.error().message("后端服务器报错，请联系后端处理！");
    }

    //自定义的异常处理，用于处理数据异常等非底层的报错
    @ExceptionHandler(MyExceptionHandler.class)
    @ResponseBody
    public R error(MyExceptionHandler e){
        log.error(e.getMessage());
        e.printStackTrace();
        return R.error().code(e.getCode()).message(e.getMsg());
    }


}
